package com.learn.config;

/**
 * @description: 描述
 * @author: Mr.Hu
 * @create: 2022/3/16 22:05
 **/

import com.learn.interceptor.AuthenticationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(authenticationInterceptor())
                .addPathPatterns("/**")// 拦截所有请求，通过判断是否有 @LoginRequired 注解 决定是否需要登录
                .excludePathPatterns("/toLogin","/login")
                .excludePathPatterns("/toRegister","/register")
                .excludePathPatterns("/toVue","/Vue")
                .excludePathPatterns("/toDetail/*","/detail")
                .excludePathPatterns("/checkUserExit")
                .excludePathPatterns("/add-blog/**","/addBlog")
                .excludePathPatterns("/searchByKeyWord/**","/searchByKeyWord")
                .excludePathPatterns("/queryAllBlogs")
                .excludePathPatterns("/picture/**","/css/**","/layui/**");
    }

    @Bean
    public AuthenticationInterceptor authenticationInterceptor() {
        return new AuthenticationInterceptor();
    }
}
